package com.xoa.service.party.partyDues;

import com.xoa.model.users.Users;
import com.xoa.model.party.partyDues.PartyDues;
import com.xoa.dao.party.partyDues.PartyDuesMapper;
import com.xoa.util.CookiesUtil;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import com.xoa.util.common.session.SessionUtils;
import com.xoa.util.page.PageParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Created by crr on 2018/3/27.
 */
@Service
public class PartyDuesService {
    @Autowired
    private PartyDuesMapper partyDuesMapper;

    //添加
    public ToJson<PartyDues> addPartyDues(PartyDues partyDues, HttpServletRequest request) {
        ToJson<PartyDues> json = new ToJson<PartyDues>(1, "error");

        try {
            Cookie redisSessionId = CookiesUtil.getCookieByName(request,"redisSessionId");
            Users user = SessionUtils.getSessionInfo(request.getSession(), Users.class, new Users(),redisSessionId);
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            String payTimeStr=request.getParameter("paytime");
            if(!"".equals(payTimeStr)&&payTimeStr!=null) {
                Date payTime = sdf.parse(payTimeStr);
                partyDues.setPayTime(payTime);
            }
            String suppleTimeStr=request.getParameter("suppletime");
            if(!"".equals(suppleTimeStr)&&suppleTimeStr!=null) {
                Date suppleTime = sdf.parse(suppleTimeStr);
                partyDues.setSuppleTime(suppleTime);
            }
            String createtimeStr=request.getParameter("createtime");
            if(!"".equals(createtimeStr)&&createtimeStr!=null) {
                Date createtime = sdf.parse(createtimeStr);
                partyDues.setCreateTime(createtime);
            }
            String editTimeStr=request.getParameter("edittime");
            if(!"".equals(editTimeStr)&&editTimeStr!=null) {
                Date editTime = sdf.parse(editTimeStr);
                partyDues.setEditTime(editTime);
            }
            int count = partyDuesMapper.insertSelective(partyDues);
            if (count > 0) {
                json.setMsg("ok");
                json.setFlag(0);
            }
        } catch (Exception e) {
            json.setMsg(e.getMessage());
            e.printStackTrace();
            L.e("PartyDuesService addPartyDues:" + e);
        }
        return json;

    }


    //根据ID删除
    public ToJson<PartyDues> delPartyDuesById(Integer id) {
        ToJson<PartyDues> json = new ToJson<PartyDues>(1, "error");
        try {
            int count = partyDuesMapper.deleteByPrimaryKey(id);
            if (count > 0) {
                json.setMsg("ok");
                json.setFlag(0);
            }
        } catch (Exception e) {
            json.setMsg(e.getMessage());
            e.printStackTrace();
            L.e("PartyDuesService delPartyDuesById:" + e);
        }
        return json;
    }


    //根据ID修改
    public ToJson<PartyDues> updateByPrimaryKey(PartyDues partyDues) {
        ToJson<PartyDues> json = new ToJson<PartyDues>(1, "error");
        try {
            int count = partyDuesMapper.updateByPrimaryKey(partyDues);
            if (count > 0) {
                json.setMsg("ok");
                json.setFlag(0);
            }
        } catch (Exception e) {
            json.setMsg(e.getMessage());
            e.printStackTrace();
            L.e("PartyDuesService updateByPrimaryKey:" + e);
        }
        return json;
    }

    //根据id查找
    public ToJson<PartyDues> selectDuesById(Integer id) {
        ToJson<PartyDues> json = new ToJson<PartyDues>(1, "error");
        try {
            PartyDues partyDues = partyDuesMapper.selectDuesById(id);
            json.setFlag(0);
            json.setMsg("ok");
            json.setObject(partyDues);
        } catch (Exception e) {
            json.setMsg(e.getMessage());
            e.printStackTrace();
            L.e("PartyDuesService selectDuesById:" + e);
        }
        return json;
    }

    //查找全部
    public ToJson<PartyDues> selectAllDues(PartyDues partyDues, Integer page, Integer pageSize, boolean useFlag) {
        ToJson<PartyDues> json = new ToJson<PartyDues>(1, "error");
        try {
            //分页分装
            PageParams pageParams = new PageParams();
            pageParams.setPage(page);
            pageParams.setPageSize(pageSize);
            pageParams.setUseFlag(useFlag);
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("page", pageParams);
            map.put("PartyDues", partyDues);
            List<PartyDues> list = partyDuesMapper.selectAllDues(partyDues);
            json.setFlag(0);
            json.setMsg("ok");
            json.setObj(list);
            json.setTotleNum(pageParams.getTotal());
        } catch (Exception e) {
            json.setMsg(e.getMessage());
            e.printStackTrace();
            L.e("PartyMemberService selectAll:" + e);
        }
        return json;
    }

}
